package org.zs.miracle.service.user;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
import org.zs.miracle.common.base.dto.BaseManyLongIdDTO;
import org.zs.miracle.service.role.model.vo.RoleVo;
import org.zs.miracle.service.user.model.dto.AddUserInputDTO;
import org.zs.miracle.service.user.model.dto.ChangePasswordDTO;
import org.zs.miracle.service.user.model.dto.EditUserDTO;
import org.zs.miracle.service.user.model.dto.ResetPasswordDTO;
import org.zs.miracle.service.user.model.dto.SetRoleInputDTO;
import org.zs.miracle.service.user.model.dto.SetUserStateDTO;
import org.zs.miracle.service.user.model.dto.UserQueryPageDTO;
import org.zs.miracle.service.user.model.vo.UserVo;

/**
 * 用户管理Service
 */
public interface IUserService {
  
  Boolean addUser(AddUserInputDTO inputDTO);
  
  Page<UserVo> pageQueryList(UserQueryPageDTO inputDTO);
  
  Boolean delUser(BaseManyLongIdDTO inputDTO);
  
  Boolean resetPassword(ResetPasswordDTO inputDTO);
  
  Boolean setRole(SetRoleInputDTO inputDTO);
  
  Boolean editUser(EditUserDTO inputDTO);
  
  Boolean changePassword(ChangePasswordDTO inputDTO);
  
  List<UserVo> queryAllUserList();
  
  List<RoleVo> queryUserRoleList(Long id);
  
  Boolean setState(SetUserStateDTO inputDTO);
}